<?php

//Utilitaires de gestion des mails pour envoi par exemple

/**
 * Envoi d'email de $from à $to avec le sujet $subject, le message $message et éventuellement
 * comme pièces jointes $attachments
 * @param $from expéditeur
 * @param $to destinataire
 * @param $subject sujet
 * @param $message Corps de message
 * @param $cc Copie cachée
 * @param $bcc Copie cachée invisible
 * @return : array --> liste des emails pour lesquels le message n'a pas été envoyé
 */
function sendMail($from, $to, $subject, $message, $cc='', $bcc='') {
	$arrayTo = array();
	$arrayToErr = array();
	if (!is_string($to) || !is_array($to)) {
		throw new Exception('Le destinataire n\'est pas correct', ERR_BAD_REQUEST);
	} elseif (is_string($to)) {
		if (isEmail($to)) {
			$arrayTo[] = $to;
		} else {
			$arrayToErr[] = $to;
		}
	} else {
		//is_array($to)
		foreach ($to as $emailDest) {
			if (is_string($emailDest)) {
				if (isEmail($emailDest)) {
					$arrayTo[] = $emailDest;
				} else {
					$arrayToErr[] = $emailDest;
				}
			}
		}
	}
	
	$headers   = array();
	$headers[] = 'MIME-Version: 1.0';
	$headers[] = 'Content-type: text/html; charset=utf-8';
	$headers[] = "From: $from";
	if (trim($cc) != '') {
		$headers[] = "Cc: $cc";
	}
	if (trim($bcc) != '') {
		$headers[] = "Bcc: $bcc";
	}
	$headers[] = "Reply-To: $from";
	$headers[] = "Subject: {$subject}";
	$headers[] = 'X-Mailer: PHP/'.phpversion();
	
	foreach ($arrayTo as $emailDest) {
		$sent = mail($emailDest, $subject, $message, implode("\r\n", $headers));
		if (!$sent) {
			//L'email n'a pas été envoyé, on le rajoute à la liste des échecs
			$arrayToErr[] = $emailDest;
		}
	}
	
	return $arrayToErr;
}

